﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

//main67&68：野指针和空指针
int main67()
{
	int a = 10;
	int* p = &a;

	//1.下面就是野指针，即指向内存编号100的内存空间，自己也不明确到底指的地方是什么。
		//0-255都是系统保留的，不能读也不能写；
	//4.野指针，是指向一个未知的内存空间，可能在读写的时候出现错误；
	p = 0xff00;//100-->0xff00

	//3.程序直接就崩了；不能写，就连读也不行；0xff00还是崩了。 
	//*p = 100;
	printf("2.输出一下地址值为100的*p指向的内存空间的值：%d\n", *p);//直接就崩了


	system("pause");
	return EXIT_SUCCESS;
}

int main68(void)
{
	int* p;
	//5.空指针，地址值为NULL，而NULL为0;空指针就是指向内存编号0的内存空间，操作该内存空间会报错；
	p = NULL;
	//6.直接就崩了，不能修改空指针指向的内存空间的值；
	*p = 100;
	printf("6.输出修改后空指针p指向地址为0的内存空间值为100，即*p为：%d\n", *p);//直接就崩了

	//7.野指针，一般情况NULL用作于程序条件判断；
	if (p != NULL)
	{
		//free();
	}
	return 0;
}